package com.elloe.数组.长度最小的子数组;

import org.junit.jupiter.api.Test;

/**
 * @author ElloeStudy(Sifa Zhang)
 * @create 2022-04-02 20:27
 * To: 真常应物，真常得性，常清常静，常清静矣
 *
 * 暴力解法：
 *  首先最容易想到的是暴力求解，使用两个 for 循环，
 *  一个 for 循环固定一个数字比如 m，
 *  另一个 for 循环从 m 的下一个元素开始累加，
 *  当和大于等于 s 的时候终止内层循环，顺便记录下最小长度
 */
public class ViolentMinSubArrayLen {
    public static void main(String[] args) {
        // 测试集
        int[] nums = {2,3,1,2,4,3};
        int s = 7;

        int min = Integer.MAX_VALUE;
        for (int i = 0; i < nums.length; i++) {
            int sum = 0;
            for (int j = i ; j < nums.length; j++) {
                sum += nums[j];
                if (sum >= s){
                    min = Math.min(min, j-i+1); // 需要加上当前元素自己 +1
                    break;
                }
            }
        }
        System.out.println(min == Integer.MAX_VALUE ? 0 : min);
    }

    @Test
    public void s1(){
        // 重新赋值
        for (int i = 0; i < 3; i++) {
            int num = i;
            System.out.println(num);
        }
    }
}
